1. Field of the Invention
The invention relates generally to the field of data management and more particularly to managing data related to bills of material on a computer network.
2. Description of Related Art
During development and manufacturing of a product, elements, parts or components of the product are often kept in a structured item list called a bill of materials (hereinafter BOM, while the plural form, bills of material, is abbreviated as BOMs). For each such product, a BOM is used to keep track of information such as the number of parts used in manufacturing the product, the identification of parts, part vendors, and part costs. The BOM may also be used as an index or organizational tool for the documentation of a product's components such as component datasheets and mechanical drawings. Furthermore, in some instances BOMs include non-material elements such as assembly and finishing processes, machining steps, and connections. Finally, BOMs may include reference items such as tooling or agency certifications which are not actually included in the product itself, but which are required for its manufacture.
During the product development process a BOM is typically changed frequently and considerable effort is undertaken to collect and maintain BOM data. After the development cycle is complete, the BOM may be used as a guide for purchasing, and for inventory maintenance and cost control. As such, parties involved in a wide variety of organizational tasks generally make use of BOMs.
A BOM typically has a nested or hierarchical structure. For example, a typical BOM for a very simple consumer product includes a first level item list that has the box in which the product is delivered, the packing material used to protect the product from damage during shipping, the product assembly and/or use instructions, and the product itself. The first level item list also includes non-physical reference items such as product certifications and agency approvals. In the case where the product is an assembly of components, the BOM includes a second level item list that has one or more parts of the product enclosure, fasteners, a label, and one or more printed wiring board assemblies, for example. The BOM includes a third level item list for a printed wiring board assembly that typically has the printed wiring board itself and a number of electrical components of various types in various quantities. The printed wiring board item list also includes a non-physical item representing the manufacturing process of assembling the various physical parts together onto the printed wiring board. The printed wiring board item list also includes items such as fiducials and test points that are fabricated as an integral part of the printed wiring board.
It is common to refer to a nested BOM as a multi-level BOM and to an item list for a particular assembly as a single-level BOM. BOMs are often very complex, with hundreds or thousands of items and five to ten or more levels. It is common for the same item or subassembly to appear multiple times at multiple levels in a BOM. In addition, subassemblies are often used in quantities greater than one. Both of these situations substantially complicate tracking of a total component count. For this reason, a separate single-level item list is sometimes developed that includes one line for each unique item in a BOM, each line including a total quantity of that item used in the product. The development of such an item list is referred to as the flattening of the BOM, and the resulting single-level item list is often called a flattened BOM. Flattening a BOM during product development is often done by a single individual working with a computer application program such as a spreadsheet and is a time-consuming and error-prone process. Further, when the BOM changes frequently during product development, maintaining a flattened BOM is very difficult.
As noted above, BOMs additionally serve as guides for purchasing. The inclusion of non-physical and non-purchasable elements such as fiducials and test points in a BOM can be a source of confusion when the BOM is used in this manner. Non-technical staff may spend considerable time attempting to find sources for non-physical items or for items such as test points that are produced as a by-product of another manufacturing process. For this reason, separate item lists are often developed for purchasable and non-purchasable elements in a BOM. Because the resulting item list is often used as a guide for purchasing items, it is commonly referred to as a purchasing BOM. A purchasing BOM is typically created manually during product development.
The creation of flattened and purchasing BOMs is often combined, resulting in a flattened purchasing BOM. As can be appreciated, the manual process of creating the flattened purchasing BOM is time-consuming and prone to human error.
In a typical industrial setting, a single company manufactures many products each of which requires a BOM. Each such BOM may include common parts and subassemblies. In such situations, it is desirable to maintain a master item list of the items used in the company's products and to require that all items in the company's BOMs be included in the master item list. Generally a company's master item list and the BOMs that it references are closely guarded trade secrets, as access to such information would assist a competitor in replicating the company's products. The secrecy of such information is even more critical during product development, when access by a competitor would permit the competitor to anticipate the company's future direction and future product features. Thus master item lists and BOMs are conventionally maintained on a company's computer system and not placed in a common computing environment with data from other companies. Further, multiple companies' BOM data is never stored in a single database.
While the master item list and the collection of product BOMs as a whole are generally kept secret, a company must share information about individual items including discrete parts and subassemblies with its suppliers in order to permit the suppliers to manufacture the parts and subassemblies. In cases where a company uses a contract manufacturer to produce an entire product on a turnkey basis, the company must share the entire product BOM with the contract manufacturer. Currently, information is shared with suppliers on an ad hoc basis, with individual engineers or purchasing agents mailing or e-mailing product documentation to the suppliers. As a result, suppliers frequently have out-of-date or otherwise incorrect information about items and subassemblies. This method of sharing information does not enable a company to easily determine which information each supplier has and if the release of the information is appropriate.
Various software tools have been developed to manage BOMs. Each of these tools provides limited functionality to address a specific aspect of BOM management. For example, to facilitate the manufacturing process and to plan the procurement of product components, conventional computer software called Manufacturing Resource Planning (MRP) software may be employed. MRP software uses a product BOM as the basis for such planning. However, MRP software is very complex to use. In addition, MRP software typically assumes that the product BOM changes very infrequently and as a result only provides inadequate tools for entering changes to the BOM. For these reasons, MRP software is rarely used during product development, when the product BOM may be changing on a daily or weekly basis and ease-of-use is important. Further, the calculations performed by MRP software are quite intensive and a single computer or server is typically dedicated to running the MRP software for one company or user. The computer used for this purpose is typically housed on-site at the company for security and convenience.
The most common category of software tool used for BOM management during product development is the general-purpose spreadsheet, of which Microsoft Excel® is an example. However spreadsheets are not well suited to BOM management. As noted above, a BOM is a complex collection of information that is typically developed and used by a group of people working together. Such information is more efficiently managed with a multi-user, relational database, while a spreadsheet is best characterized as a single-user flat-file database.
Examples of database applications employed to manage BOMs include Agile Anywhere® by Agile Software Corp. of San Jose, Calif. and Vendors® by Trilogy Design of Grass Valley, Calif. These applications provide a dedicated multi-user database for managing a single company's master item list and related BOM data during product development, including vendor and inventory information and item specification documents. However, these applications do not provide any means to maintain master item lists and BOM data from multiple companies or unrelated users in a single computer system or in a single database.
Furthermore, the set-up and management of dedicated computer systems for BOM management is difficult and expensive. This fact is widely recognized, as is evidenced by Agile Software's “Hosting” service. This service permits a company to pay Agile Software to maintain a dedicated BOM management database on a dedicated computer at an offsite facility with access to the database provided by secure connections over the Internet. Agile Software claims to be able to set up a customer with hosting in “ . . . as little as four weeks” (Agile Hosting Datasheet, Document #DSHOST-B 06/00, Agile Software Corp.).
The hosting of data from more than one company in a single database is known in the art. For example, Yahoo! Corporation provides a service that permits companies to set up virtual storefronts or catalogs on the Internet for presentation to potential customers. These and related services allow companies to combine non-confidential catalog data into a common database managed by a third party and thereby reduce the cost of set-up and maintenance of an electronic commerce web site. A notable feature of such services is that the hosted data is considered non-confidential by the participating companies.
Known database systems further enable a contract manufacturer to combine BOM data from multiple customer companies into a single database using conventional MRP or BOM management software. As such, the contract manufacturer combined database is a BOM management database for the contract manufacturer and is established for the sole use of the contract manufacturer. In particular, the contract manufacturer is not permitted to keep track of which customer supplied which data, except through cumbersome manual tabulation and labeling of individual item and BOM relations. Furthermore, customer companies of the contract manufacturer are not generally permitted access to the combined database, as this would violate the confidentiality of other customer companies' data. In the rare situations where customer access is permitted, access privileges must be administered on an ad hoc basis by manually designating which BOM data should be available to which customer. In addition, the combined database represents a duplication of BOM data, that is, the customer maintains one representation of the product BOM on their own system, and the contract manufacturer maintains a second representation on the contract manufacturer's system.
Master item lists in current BOM management systems include only items as represented by the company that owns the system. Current BOM management systems do not permit representation of other company's items as distinct entities within the BOM management system. As a result, documents and information such as supplier datasheets are typically duplicated by customer companies and then stored and tracked under the customer company's item number. In some cases, the same supplier item may be approved for use as multiple customer items. For example, a supplier's 1% tolerance resistor may be approved for use as the customer's 1% tolerance resistor or as the customer's 5% tolerance resistor. In such a situation, the supplier's item information is replicated multiple times in the customer's BOM management system. This presents difficulties when the supplier changes the supplier item data, as each of the duplicate representations of the supplier item in the customer's BOM management system must be updated individually. Thus, there is a need for a BOM management system that permits a company to maintain representations of other companies' BOM data, including items, while minimizing the duplication of such data.
Conventional software tools further include those that provide for the analysis of BOM data and the categorization of items in a master item list. During product development and production, it is common to categorize components as line items of a BOM by type such as molded plastic part, printed circuit board, and integrated circuit and then to conduct design analysis to determine the relative number and value of each type of component contained in a particular product or group of products. A typical statement that would arise from this type of analysis is “in product X, mechanical components account for 5% of the total number of components and 25% of the overall product cost.” This type of analysis is often done to direct cost-reduction efforts, both in development and in production.
Because of the recognized need to categorize components by type, developers of software tools that manage and maintain element lists and BOMs conventionally include functionality that permits component type categorization. This functionality is implemented with either a fixed “built-in” scheme for type categorization, or support for a single user-specified application-specific categorization scheme. When implemented, these solutions permit only one level of categorization, so either the developer or the user of the software tool must decide how many different categories to include, and what level of detail to include in each category type.
When the categorization scheme is specified by the software tool developer, problems arise because different users typically want different categorization schemes. For example, a manufacturer of optical equipment may need a very precise categorization of different lens types and have no need for a categorization of electrical components. Alternatively, a manufacturer of door locks would need a detailed categorization of mechanical components, but have no need to categorize lenses or electrical components.
Problems also arise when a company using the software tool can specify the categorization scheme in their implementation of the categorization. Different individual users of the system need different levels of detail in the categorization scheme. Clerks who assign item numbers typically prefer a simple system with few categories, as less technical knowledge is required to correctly categorize an element. Engineers and technical managers typically prefer a system with more categories, because this is more useful in performing design analysis. A technical manager may prefer relatively few, broad categories (for example, electrical, mechanical, packaging), while the individual engineers typically want categories that reflect a much more precise categorization. However, even different engineers typically care about different levels of detail. An electrical engineer may wish to categorize electrical components very precisely, but be happy to group all mechanical components together into one category. Conversely, a mechanical engineer may want to categorize mechanical components very precisely and not care about electrical components. Conventional systems do not have the flexibility to meet these varied preferences.
The difficulty of addressing component categorization in a way that adequately serves the needs of different companies and different users within the company is so severe that many developers of software tools that manage and maintain item lists and BOMs have chosen to omit this functionality. Furthermore, current categorization systems are inflexible and limited in their use. They do not adapt well to specific applications and are inadequate for analyzing BOMs. Current categorization systems also do not support multiple categorization levels, inheritance of category properties, and multiple views of category detail.
In sum, conventional systems do not provide for the flexibility required of BOM management systems. For example, current technology does not facilitate the sharing of information between BOMs, particularly when the BOMs are developed by different users. The lack of shared BOM data inhibits activities such as identification of vendors, rating of parts, rating of vendors, rating of manufacturers, calculation of cost estimates, identification of components and alternative components, and execution of electronic transactions. Currently, the presence of an element, and data concerning that element, in a BOM is not fully exploited when a second BOM is developed. The current technology also does not facilitate the presentation of a variety of views of a BOM or a variety of views of elements within a BOM. Finally, there are no means by which data within a BOM can be used to provide a user with additional useful information about related elements and products.
Conventional systems do not facilitate grouping of user data across separate BOMs. For example, there are no prior art systems for storing more than one BOM, owned by more than one user, in a single namespace. A single namespace includes a set of names, such as the primary keys of a database, in which all names (keys) are unique. Therefore, in the prior art it is not possible to store multiple BOMs within a single data file, or set of files that share a set of primary keys, while maintaining ownership or access control to individual BOMs, and BOM data, among the stored multiple BOMs. This prevents the storage of BOMs from multiple companies, or any other “owning” entity, in a single database or similar computational process. Advantages of BOM aggregation are therefore not achievable in the prior art.